import java.sql.*;
import java.io.*;

public
class DatabaseTest
{
	public static DatabaseTest databaseTest;
	protected Connection connection = null;
	public static PrintWriter outp = null;
	
	public DatabaseTest(String query)
	{
		try{
			connect("test");
			doQuery(query);
		}
		catch(SQLException e){
			outp.println("Bd: " + e);
			while((e = e.getNextException()) != null){
			}
		}
		catch(IOException e){
			outp.println("Bd IO: " + e);
		}
		finally{
			close();
		}
	}
	public static void setOutput()
	{
		try{
		outp = new PrintWriter(new OutputStreamWriter(System.out, "Cp852"), true);
		}
		catch(UnsupportedEncodingException e){
			System.out.println("Nie mona ustawi strony kodowej Cp852.");
			outp = new PrintWriter(new OutputStreamWriter(System.out), true);
		}
	}
	public static void main(String args[])
	{
		setOutput();
		if(args.length < 1){
			outp.println("Wywoanie programu: DatabaseTest \"zapytanie SQL\"");
			return;
		}
		databaseTest = new DatabaseTest(args[0]);
	}
	public void connect(String databaseName)
	throws SQLException
	{
		try{
			Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
		}
		catch(ClassNotFoundException e){
			outp.println("Bd przy adowaniu sterownika bazy: " + e);
			System.exit(-1);
		}
		connection = DriverManager.getConnection("jdbc:odbc:" + databaseName);
		outp.println("\nPoczenie nawizane!\n");
	}
	public void close()
	{
		try{
			connection.close();
		}
		catch(SQLException e){
			outp.println("Bd: " + e);
			while((e = e.getNextException()) != null){
			}
			System.exit(-1);
		}
		outp.println("\nPoczenie zamknite!\n");
	}
	public void doQuery(String query)
	throws SQLException, IOException
	{	
		Statement statement = connection.createStatement();
		boolean update = statement.execute(query);
		if (!update){
			int count = statement.getUpdateCount();
			outp.println("Ilo zmodyfikowanych rekordw: " + count + "\n");
		}
		else{
			ResultSet rs = statement.getResultSet();
			while(rs.next()){
			String imie = rs.getString("IMIE");
			String nazwisko = rs.getString("NAZWISKO");
			String stanowisko = rs.getString("STANOWISKO");
			String rok_zatrudnienia = rs.getString("ROK_ZATRUDNIENIA");
			String zarobki = rs.getString("ZAROBKI");
			outp.println(
				imie + " " + 
				nazwisko + " " + 
				stanowisko + " " +
				rok_zatrudnienia + " " +
				zarobki
				);
			}
		}
		statement.close();
	}
}
